[Updated] Likelihood-informed processors#410
Merged
Merged
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #410 +/- ##
==========================================
+ Coverage 94.18% 94.41% +0.23%
==========================================
Files 10 11 +1
Lines 1977 2220 +243
==========================================
+ Hits 1862 2096 +234
- Misses 115 124 +9 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
odunbar
force-pushed
the
orad/likelihood-informed-proc-v2
branch
4 times, most recently
from
April 2, 2026 22:28
ae22812 to
8c3e37c
Compare
typos add pkgs encoder_kwargs in nice form remove dim criterion for now docstring API refinement add example builds encoder, but mcmc bug examples run, bugs for dimensionality and product order resolved noise injection reduced add some get_encoded_dim functions add consistency for both in-and-out dimensions for li, when using multiple distributions runs through with output reduction, logic simplified for now
odunbar
force-pushed
the
orad/likelihood-informed-proc-v2
branch
from
April 30, 2026 23:10
002a511 to
b5525d6
Compare
ArneBouillon
approved these changes
May 6, 2026
ArneBouillon
left a comment
Collaborator
There was a problem hiding this comment.
It looks good and I generally like the design, so let's get this merged!
When the paper is fully finalized, I might update the code with some things I improved while fine-tuning the experiments (e.g., performance improvements)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Co-authored by @ArneBouillon
Purpose
Content
encoder_kwargsfor structure vectors now keepsamples_inandsamples_outin their respective distributions, and also contain the algorithm time valuesdtcorresponding to the distributionsdim_criterion, only a threshold for doing dimension reductioniters(Vector{Int}) notalphas(Vector{FT}) to indicate whichdtvalues they would like to use for dimension reduction. A message reports thedtof the requested iterationsitersare requested, by default we compute the LIS for eachiter, then use a trapezoidal rule to create the final subspace.f(k) = log(1+k)^2and truncate based oncumsum(f(k))/sum(f(k)) > eps. Leads to cutoffepsthat is not "0.99999"encoder_kwargs_from(eki,prior; g_final=...)to obtain all kwargs for encoding a typical problem. Additionally, we provide a convenience where the user can provide the "g" ensemble for a final evaluation of "u" in from the ekiDimensionReductionexample for a linear problem to assess performanceMISC
encode_data,encode_structure_matrix,encode_with_scheduleapplied toencoder_schedule. NOT applicable to processors._encode_data_encode_structure_matrixonly applicable to exact processors etc.encode_dataandencode_structure_matrix(and decode counterparts) allow application toemulatorin place ofencoder_schedulenoise_injectorin the forward map wrapper can induce instability in the MCMC algorithm, so we might consider changing the default here. (this is not for inflating the posterior, but for evaluating the likelihood when providing reduced parameters to the forward map. This may really be a symptom from the need to resample with MC over several forward map evaluations when injecting the noise)Example
DimensionReductionWe just try the DR methods (using the forward map wrapper in place of an emulator) for a linear example in 100D->100D: The following is output
We see that as you increase truncation, our new LI methods reduce errors comparably, or more more slowly, than PCA alone. We also see that using only PCA from EKP samples (over using the prior and obs. matrices here) lead to poor errors